SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


CREATE PROCEDURE [dbo].[LIQJubilacionCargo] 
@Agente INT,
@Servicio INT,
@Plaza INT,
@Resultado DECIMAL(18,4) OUTPUT,
@idLiquidacion INT,
@DiasALiquidar INT,
@DiasDelPeriodo INT,
@Desde DATETIME,
@Hasta DATETIME

AS 
/*
	POR AHORA SOLO CALCULA EL 13% SOBRE EL TOTAL REMUNERATIVO
*/


SET NOCOUNT ON
SET DATEFORMAT DMY 


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- REGISTRO DE ACTUALIZACIONES
-- 18/11/2005 - Se agregaron parametros @Desde y @Hasta para manejo de Fechas en Titulares y Suplentes
-- 09/07/2006 - Los parametros se obtienen de la funcion fnObtenerValorDeParametro con la fecha que corresponda.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PRINT 'JUBILACION'
DECLARE @Jubilacion DECIMAL(18,4)
DECLARE @TotalRemunerativo DECIMAL(18,4)
DECLARE @Afiliacion INT, @horas INT, @regimensalarial  INT, @organizacion INT, @situacionrevista INT
DECLARE @CargoSalarial INT
DECLARE @NroError INT
DECLARE @SubOrganizacion INT
DECLARE @Porcentaje DECIMAL(18,4)
DECLARE @Cuise INT
DECLARE @TotalContribucion DECIMAL(18,4)
DECLARE @PorcentajeDeAporte DECIMAL(18,4)
DECLARE @CabeceraDeLiquidacion INT

SELECT @Afiliacion = idAfiliacion FROM tb_Afiliaciones WHERE idAgente = @Agente
SELECT @horas= horas, @regimensalarial = regimensalarial, @SubOrganizacion = SubOrganizacion FROM tb_Plazas WHERE idPlaza = @Plaza
SELECT @Organizacion = ubicacionOrig, @SituacionRevista = SituacionRevista, @CargoSalarial = CargoSalarial FROM tb_ServiciosAgentes WHERE idservicioAgente =  @Servicio
SELECT @Cuise = Cuise FROM tb_Organizaciones WHERE idOrganizaciones = @Organizacion

--SELECT @PorcentajeDeAporte = CONVERT(DECIMAL(18,4), Valor1) FROM tb_Parametros WHERE Parametro = '%AporteJubilatorio'
SELECT @PorcentajeDeAporte = CONVERT(DECIMAL(18,4), dbo.fnObtenerValorDeParametro ('%AporteJubilatorio', @Hasta))

SELECT @CabeceraDeLiquidacion = IdCabeceraLiquidacion FROM tb_Liquidaciones WHERE IdLiquidacion = @IdLiquidacion

If Exists( SELECT * FROM tb_AportesJubilatorios WHERE Servicio = @Servicio)
	SELECT @Porcentaje = (Porcentaje/100) FROM tb_AportesJubilatorios WHERE Servicio = @Servicio
Else
	SELECT @Porcentaje = @PorcentajeDeAporte / 100

if @RegimenSalarial = 13
	SELECT @Horas = Horas FROM tb_ServiciosAgentes WHERE idServicioAgente = @Servicio
else 
	SELECT @Horas = EquivHoraria FROM tb_CargosSalariales WHERE idCargo = @CargoSalarial

SELECT @TotalRemunerativo = sum(MontoHaberes) FROM tb_RegistroDeLiquidaciones, tb_ConceptosDeLiquidacion
 WHERE Liquidacion = @idLiquidacion and idConceptoLiquidacion = concepto and (tipo = 1 or tipo = 2) and Servicio = @Servicio

SELECT @Jubilacion = (@TotalRemunerativo * @Porcentaje)


If (SELECT OrganizacionLiquidadora FROM tb_SubOrganizaciones WHERE idSubOrganizacion = @SubOrganizacion) Is Not Null
	SELECT @Organizacion = OrganizacionLiquidadora FROM tb_SubOrganizaciones WHERE idSubOrganizacion = @SubOrganizacion

INSERT INTO tb_RegistroDeLiquidaciones (AfectadosPorAjuste, Afiliacion, Agente, Ajuste, Cantidad, Cargosalarial, Concepto, Descripcion, DescuentoExterno, Desde, Dias, Embargo, Hasta, Horas, LegajoSalarial, Liquidacion, MontoDescuento, MontoHaberes, Organizacion, Reclamado, Servicio, SituacionRevista, DiasLiquidados, SubOrganizacion)
	VALUES (null, @Afiliacion, @Agente, null, 1, null, 10, null, null, null, null, null, null, @horas, 0, @idLiquidacion, @Jubilacion, 0, @Organizacion, null, @Servicio, @SituacionRevista, @diasALiquidar, @SubOrganizacion)
SELECT @NroError = @@ERROR

If @NroError <> 0
Begin
	 INSERT INTO tb_ErroresLiquidacion (Agente, Concepto, Diagnostico, Fecha, Liquidacion, Organizacion, Servicio, CabeceraDeLiquidacion) VALUES
	(@Agente, 10, convert(varchar,@NroError), getdate(), @idLiquidacion, @Organizacion, @Servicio, @CabeceraDeLiquidacion)
End
GO
